const {
    CombinedPredicate: {
        not,
    },
    stringValidator: {
        isPostcode,
    },
    onceOfSameParam,
} = rx

const validateIdcId = RxFormValidator.validator({
    rxElemValidators: [
        RxElemValidator.create('idcId', '[IDC/ISP 许可证号] 已经存在', onceOfSameParam(baseOperCompanyApi.existsById, 'baseOperCompanyApi.existsById')),
    ],
})

/**
 * @author rxliuli
 */
const validate = RxFormValidator.generate([
    RxElemValidator.notBlank('idcId', '[IDC/ISP 许可证号] 不能为空'),
    RxElemValidator.notBlank('operName', '[经营者名称] 不能为空'),
    /*RxElemValidator.notBlank('address', '[通信地址] 不能为空'),
    RxElemValidator.notBlank('zipCode', '[邮编编号] 不能为空'),
    RxElemValidator.notBlank('companyCorporation', '[企业法人] 不能为空'),*/
    RxElemValidator.notBlank('securityOwner', '[安全责任人] 不能为空'),
    RxElemValidator.notBlank('emergencyContact', '[应急联系人] 不能为空'),

    RxElemValidator.limitLen('idcId', '[IDC/ISP 许可证号] 长度最大为 128 位', 128),
    RxElemValidator.limitLen('operName', '[经营者名称] 长度最大为 128 位', 128),
    RxElemValidator.limitLen('address', '[通信地址] 长度最大为 200 位', 200),
    RxElemValidator.limitLen('zipCode', '[邮编编号] 长度最大为 6 位', 6),
    RxElemValidator.limitLen('companyCorporation', '[企业法人] 长度最大为 30 位', 30),
    RxElemValidator.limitLen('securityOwner', '[安全责任人] 长度最大为 15 位', 15),
    RxElemValidator.limitLen('emergencyContact', '[应急联系人] 长度最大为 15 位', 15),

    RxElemValidator.mayBeBlank('zipCode', '[邮编编号] 格式错误。示例: 510000', not(isPostcode)),
])
